package com.zhonghan.recharge.service;

import java.util.List;

import com.zhonghan.common.bean.Result;
import com.zhonghan.recharge.pojo.ZhFillCard;

public interface ZhFillCardService {
	/**
	 * 获得ZhFillCard数据的总行数
	 * 
	 * @return
	 */
	long getZhFillCardRowCount();

	/**
	 * 获得ZhFillCard数据集合
	 * 
	 * @return
	 */
	List<ZhFillCard> selectZhFillCard();

	/**
	 * 获得一个ZhFillCard对象,以参数ZhFillCard对象中不为空的属性作为条件进行查询
	 * 
	 * @param obj
	 * @return
	 */
	List<ZhFillCard> selectZhFillCardByObj(ZhFillCard obj);

	/**
	 * 通过条件获取数据总数
	 * 
	 * @param obj
	 * @return
	 */
	long getZhFillCardRowCountByObj(ZhFillCard obj);

	/**
	 * 通过ZhFillCard的id获得ZhFillCard对象
	 * 
	 * @param id
	 * @return
	 */
	ZhFillCard selectZhFillCardById(Integer id);

	/**
	 * 通过ZhFillCard的sequence获得ZhFillCard对象
	 * 
	 * @param sequence
	 * @return
	 */
	ZhFillCard selectZhFilLCardByCardNo(Integer reCardNo);

	/**
	 * 插入ZhFillCard到数据库,包括null值
	 * 
	 * @param value
	 * @return
	 */
	int insertZhFillCard(ZhFillCard value);

	/**
	 * 插入ZhFillCard中属性值不为null的数据到数据库
	 * 
	 * @param value
	 * @return
	 */
	int insertNonEmptyZhFillCard(ZhFillCard value);

	/**
	 * 批量插入ZhFillCard到数据库
	 * 
	 * @param value
	 * @return
	 */
	int insertZhFillCardByBatch(List<ZhFillCard> value);

	/**
	 * 通过ZhFillCard的id删除ZhFillCard
	 * 
	 * @param id
	 * @return
	 */
	int deleteZhFillCardById(Integer id);

	/**
	 * 通过ZhFillCard的id更新ZhFillCard中的数据,包括null值
	 * 
	 * @param enti
	 * @return
	 */
	int updateZhFillCardById(ZhFillCard enti);

	/**
	 * 通过ZhFillCard的id更新ZhFillCard中属性不为null的数据
	 * 
	 * @param enti
	 * @return
	 */
	int updateNonEmptyZhFillCardById(ZhFillCard enti);

	/**
	 * 条件查询充值卡
	 * 
	 * @param sequence
	 * @param status
	 * @param facePrice
	 * @param pageSize
	 * @param pageNum
	 * @return
	 */
	public Result selectCardList(String sequence, Integer status, Integer facePrice, String beginTime, String endTime,
			Integer pageNum, Integer pageSize);

	/**
	 * 查询总金额
	 * 
	 * @param obj
	 * @return
	 */
	public List<ZhFillCard> getZhFillCardByObj(ZhFillCard obj);

	/**
	 * 激活一个卡段
	 * 
	 * @param sequenceBegin
	 *            开始卡段
	 * @param sequenceEnd
	 *            结束卡段
	 * @return
	 */
	int updateZhFillCardByStatus(String sequenceBegin, String sequenceEnd);

	/**
	 * 获取客户油卡激活列表
	 * @param beginTime
	 * @param endTime
	 * @param status
	 * @param customerName
	 * @param pageSize 
	 * @param pageNum 
	 * @return
	 */
	Result getCustomerCardList(String beginTime, String endTime, Integer status, String customerName, Integer pageNum, Integer pageSize);

}
